package sk.uniba.fmph.asdf.utils;

import java.awt.Dimension;
import java.awt.Point;
import sk.uniba.fmph.asdf.test.RelativePoint;

/**
 * Pomocna trieda na konverziu relativnych pozicii na absolutne a opacne.
 * 
 * @author Jakub
 */
public class Convertor {

	/**
	 * Konverzia absolutnych pozicii v obrazku danych rozmerov na relativne.
	 * 
	 * @param p - bod reprezentujuci absolutnu poziciu
	 * @param d - rozmery obrazka, v ktorom sme tuto poziciu namerali
	 * @return RelativePoint - bod s relativnymi poziciami
	 */
	public static RelativePoint absToRel(Point p, Dimension d) {
		return new RelativePoint((float) p.x / d.width * 100, (float) p.y / d.height * 100);
	}

	/**
	 * Konverzia relativnych pozicii na absolutne pre obrazok zadanych rozmerov.
	 * 
	 * @param p - relativny bod reprezentujuci relativnu poziciu
	 * @param d - rozmery obrazka, do pre ktory chceme vypocitat absolutnu poziciu tohto bodu
	 * @return Point - bod s absolutnymi poziciami vzhladom na zadne rozmery
	 */
	public static Point relToAbs(RelativePoint p, Dimension d) {
		return new Point(Math.round(p.x * d.width / 100), Math.round(p.y * d.height / 100));
	}
}
